﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FirmaKurierska.Models;
using FirmaKurierska.Areas.Admin.Models;
using FirmaKurierska.Areas.Centrala.Models;
using FirmaKurierska.Filters;
using System.Web.Security;

namespace FirmaKurierska.Areas.Centrala.Controllers
{
    public class TwoiKierowcyController : Controller
    {
        /// <summary>
        /// Wyświetla listę kierowców przypisanych do centrali zalogowanego pracownika
        /// </summary>
        /// <returns>Lista centrali</returns>
        public ActionResult Index()
        {
            string uzytkownik = User.Identity.Name;
            var dbContext = new UsersContext();
            var users = dbContext.UserProfiles.ToList();

            //zalogowany uzytkownik
            var user = (from n in users where n.UserName.Equals(uzytkownik) select n).Single();

            //Połączenie z odpowiednia baza           
            var centralaId = user.CentralaId;            
            var db = new PlacowkaEntities();

            KierowcyModelView model = new KierowcyModelView();
            List<UserProfile> kierowcy = new List<UserProfile>();
            var kierowcyLoginy = Roles.GetUsersInRole("Kierowca").ToList();

            foreach(var kierowca in kierowcyLoginy) {
                UserProfile tmp = (from n in users where n.UserName.Equals(kierowca) select n).Single();
                if(tmp.CentralaId == centralaId) kierowcy.Add(tmp);
            }
            model.kierowcy = kierowcy;

            var samochodytmp = db.Samochod.ToList();
            var samochody = (from n in samochodytmp where n.centrala_id == centralaId select n).ToList();
            List<int> samochoydRejestracje = new List<int>();

            foreach (var kierowca in kierowcy)
            {
                int rejestracja = -1;
                try
                {
                    rejestracja = (from n in samochody where n.kierowca_id == kierowca.UserId select n.nr_rejsetracyjny).Single();
                }
                catch (Exception) { }
                samochoydRejestracje.Add(rejestracja);
            }
            model.rejestracje = samochoydRejestracje;


            return View(model);
        }
    }
}
